home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 March / Macworld (1998-03) (Disk 1).dmg / Shareware World / Info / For Developers / GhostScript 5.10 / MacGS-510 / files / markpath.ps < prev    next >
Text File  |  1995-11-14  |  2KB  |  61 lines

  1. %    Copyright (C) 1993 Aladdin Enterprises.  All rights reserved.
  2. % This file is part of Aladdin Ghostscript.
  3. % Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  4. % or distributor accepts any responsibility for the consequences of using it,
  5. % or for whether it serves any particular purpose or works at all, unless he
  6. % or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  7. % License (the "License") for full details.
  8. % Every copy of Aladdin Ghostscript must include a copy of the License,
  9. % normally in a plain ASCII text file named PUBLIC.  The License grants you
  10. % the right to copy, modify and redistribute Aladdin Ghostscript, but only
  11. % under certain conditions described in the License.  Among other things, the
  12. % License requires that the copyright notice and this notice be preserved on
  13. % all copies.
  14.  
  15. % markpath.ps
  16. % Mark the corners of a path, drawing it slowly if desired.
  17.  
  18. /Delay where { pop } { /Delay 0 def } ifelse
  19. /setxy0
  20.  { currentpoint /y0 exch def /x0 exch def
  21.  } def
  22. /bip
  23.  { epsx epsy idtransform /ey exch def /ex exch def
  24.    currentpoint ex 2 div ey 2 div rlineto currentpoint 0 ey neg rlineto
  25.    ex neg 0 rlineto 0 ey rlineto lineto lineto
  26.    stroke
  27.  } def
  28. /dally
  29.  { Delay { } repeat
  30.    Delay 0 ne { flushpage } if
  31.  } def
  32. /movebip
  33.  { /xs 2 index def /ys 1 index def
  34.    gsave newpath mpmx transform moveto setxy0 bip grestore
  35.  } def
  36. /linebip
  37.  { gsave newpath x0 y0 moveto mpmx transform lineto setxy0 bip dally grestore
  38.  } def
  39. /curvebip
  40.  { gsave newpath x0 y0 moveto 5 index 5 index mpmx transform lineto bip
  41.    2 copy mpmx transform moveto 3 index 3 index mpmx transform lineto bip
  42.    x0 y0 moveto
  43.    3 { mpmx transform 6 2 roll } repeat
  44.    curveto setxy0 bip dally grestore
  45.  } def
  46. /closebip
  47.  { xs ys linebip
  48.  } def
  49.  
  50. /markpath        % <matrix> markpath -
  51.  { /mpmx exch def 
  52.    gsave initgraphics 9 dup dtransform grestore
  53.      /epsy exch def   /epsx exch def
  54.    gsave 0 setlinewidth
  55.     { movebip } { linebip } { curvebip } { closebip } pathforall
  56.    grestore
  57.  } def
  58.